BaseProtocolServer

StockSharp.Server.Core

协议服务器的基类(FIX,SBE等). 包含共享的基础设施:生命周期,会话,订阅,消息通道,背景任务.

继承自: BaseLogReceiver

实现: IProtocolServer, ILogReceiver, ILogSource, IDisposable

构造函数

BaseProtocolServer
protected BaseProtocolServer(TSettings settings)
baseProtocolServer = BaseProtocolServer(settings)

初始化一个新实例。

settings
服务器设置 。

属性

LoginRateLimiter
protected LoginRateLimiter LoginRateLimiter { get; private set; }
value = baseProtocolServer.LoginRateLimiter
baseProtocolServer.LoginRateLimiter = value

登录尝试的速率限制器( 在所有听众中共享) 。

Sessions
public IEnumerable<IMessageListenerSession> Sessions { get; }
value = baseProtocolServer.Sessions

活跃会话.

Settings
public TSettings Settings { get; }
value = baseProtocolServer.Settings

设置。

State
public ChannelStates State { get; protected set; }
value = baseProtocolServer.State
baseProtocolServer.State = value

获得基础状态存储.

方法

AddSubscription
public void AddSubscription(ServerSubscription subscription)
baseProtocolServer.AddSubscription(subscription)

增加订阅.

subscription
订阅.
ClearState
protected virtual void ClearState()
baseProtocolServer.ClearState()

清除所有状态:听众,会话,订阅.

Convert
protected string Convert(string value)
result = baseProtocolServer.Convert(value)

如果配置, 将文本转换为 latin 。

CreateSubscription
protected abstract TSubscription CreateSubscription(TClientSession session, string requestId, ServerSubscription subscription, MessageTypes type)
result = baseProtocolServer.CreateSubscription(session, requestId, subscription, type)

创建订阅信息实例 。

Disconnect
public void Disconnect(IMessageListenerSession session)
baseProtocolServer.Disconnect(session)

断开会话 。

session
届会。
DisposeManaged
protected override void DisposeManaged()
baseProtocolServer.DisposeManaged()

释放资源。

EnqueueMessage
protected void EnqueueMessage(TClientSession session, string requestId, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(session, requestId, handler, cancellationToken)

请求的ID 命令会议。

EnqueueMessage
protected void EnqueueMessage(TSubscription subscription, TClientSession session, string requestId, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask<bool>> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscription, session, requestId, handler, cancellationToken)

核心入会:安排客户会话的工作.

EnqueueMessage
protected void EnqueueMessage(TSubscription[] subscribers, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscribers, handler, cancellationToken)

多个订阅者的队列消息 。

EnqueueMessage
protected void EnqueueMessage(TSubscription[] subscribers, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask<bool>> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscribers, handler, cancellationToken)

多个订阅者的语句( 有 bul results) 。

EnqueueMessage
protected void EnqueueMessage(TSubscription subscription, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscription, handler, cancellationToken)

单项订阅的队列消息 。

EnqueueMessage
protected void EnqueueMessage(TSubscription subscription, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask<bool>> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscription, handler, cancellationToken)

单项订阅的队列消息( 带有 bul results) 。

EnqueueMessage
protected void EnqueueMessage(TClientSession session, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(session, handler, cancellationToken)

给会话的排队消息( 没有请求 ID) 。

GetSessionKey
protected abstract string GetSessionKey(TClientSession session)
result = baseProtocolServer.GetSessionKey(session)

获取用于分组客户端会话的密钥(e.g. SenderCompId) 。

GetSubscriptions
public IEnumerable<ServerSubscription> GetSubscriptions(IMessageListenerSession session)
result = baseProtocolServer.GetSubscriptions(session)

获取指定会话的订阅 。

session
届会。

返回值: 订阅.

HasSubscriptions
public bool HasSubscriptions(DataType dataType, SecurityId securityId)
result = baseProtocolServer.HasSubscriptions(dataType, securityId)

Are there subscribers.

IsStubSubscription
protected abstract bool IsStubSubscription(TSubscription subscription)
result = baseProtocolServer.IsStubSubscription(subscription)

检查订阅是否为分页( 位置持有者) 。

Load
public override void Load(SettingsStorage storage)
baseProtocolServer.Load(storage)

装入设置 。

storage
设置存储 。
OnClearListenerState
protected abstract void OnClearListenerState()
baseProtocolServer.OnClearListenerState()

清除协议特定听众状态(停止听众等).

OnStartListeners
protected abstract void OnStartListeners(CancellationToken cancellationToken)
baseProtocolServer.OnStartListeners(cancellationToken)

Start protocol-specific listeners (TCP, etc.). Add tasks to _backgroundTasks.

ProcessInMessage
protected abstract void ProcessInMessage(Message message, CancellationToken cancellationToken)
baseProtocolServer.ProcessInMessage(message, cancellationToken)

处理发送到订阅客户端的消息和路径 。

ProcessLogout
protected virtual void ProcessLogout(TClientSession session)
baseProtocolServer.ProcessLogout(session)

处理客户端的登录/断开连接.

RaiseNewOutMessage
protected void RaiseNewOutMessage(IMessageListenerSession session, Message message)
baseProtocolServer.RaiseNewOutMessage(session, message)

将发送的消息写入频道 。

RaiseSessionConnected
protected void RaiseSessionConnected(IMessageListenerSession session)
baseProtocolServer.RaiseSessionConnected(session)

提高会话连接事件 。

RaiseSessionDisconnected
protected void RaiseSessionDisconnected(IMessageListenerSession session)
baseProtocolServer.RaiseSessionDisconnected(session)

提升会话断开的事件 。

RemoveSubscription
public bool RemoveSubscription(ServerSubscription subscription)
result = baseProtocolServer.RemoveSubscription(subscription)

删除订阅 。

subscription
订阅.

返回值: ,否则。

Resume
public bool Resume(ServerSubscription subscription)
result = baseProtocolServer.Resume(subscription)

继续订阅。

subscription
订阅.

返回值: ,否则。

Resume
public void Resume(IMessageListenerSession session)
baseProtocolServer.Resume(session)

复会.

session
届会。
RunAsync
public IAsyncEnumerable<ValueTuple<IMessageListenerSession, Message>> RunAsync(CancellationToken cancellationToken)
result = baseProtocolServer.RunAsync(cancellationToken)

运行同步消息处理并返回发送的消息为 IAsyncEnumerable 。 打开服务器开始, 关闭结束 。

Save
public override void Save(SettingsStorage storage)
baseProtocolServer.Save(storage)

保存设置 。

storage
设置存储 。
ScheduleSessionWork
protected abstract void ScheduleSessionWork(TClientSession session, ServerSubscription subscription, string requestId, Func<TClientSession, string, CancellationToken, ValueTask<bool>> handler)
baseProtocolServer.ScheduleSessionWork(session, subscription, requestId, handler)

客户端会话的出行队列的进度安排 。

SendInMessage
public virtual bool SendInMessage(Message message)
result = baseProtocolServer.SendInMessage(message)

将收到的邮件发送到服务器,以便处理和路由给客户端.

StartServer
protected void StartServer(CancellationToken cancellationToken)
baseProtocolServer.StartServer(cancellationToken)

启动服务器:初始化状态,启动听众和背景任务.

StopServer
protected void StopServer()
baseProtocolServer.StopServer()

停止服务器:取消任务,完整频道,清晰状态.

Suspend
public void Suspend(IMessageListenerSession session)
baseProtocolServer.Suspend(session)

暂停会话。

session
届会。
Suspend
public bool Suspend(ServerSubscription subscription)
result = baseProtocolServer.Suspend(subscription)

暂停订阅 。

subscription
订阅.

返回值: ,否则。

事件

SessionConnected
public event Action<IMessageListenerSession> SessionConnected
baseProtocolServer.SessionConnected += handler

会话连接事件 。

SessionDisconnected
public event Action<IMessageListenerSession> SessionDisconnected
baseProtocolServer.SessionDisconnected += handler

会话断开事件 。

StateChanged
public event Action StateChanged
baseProtocolServer.StateChanged += handler

州变事.

SubscriptionChanged
public event Action<ServerSubscription> SubscriptionChanged
baseProtocolServer.SubscriptionChanged += handler

客户订阅更改事件 。

字段

_backgroundTasks
protected readonly List<Task> _backgroundTasks
value = baseProtocolServer._backgroundTasks

背景任务(接受客户端,处理消息等).

_cancellationRequests
protected readonly SynchronizedSet<long> _cancellationRequests
value = baseProtocolServer._cancellationRequests

等待取消订单 请求交易身份 。

_changedSubscriptions
protected readonly SynchronizedSet<ServerSubscription> _changedSubscriptions
value = baseProtocolServer._changedSubscriptions

更改订阅,等待通知。

_clientSessions
protected readonly CachedSynchronizedDictionary<string, CachedSynchronizedList<TClientSession>> _clientSessions
value = baseProtocolServer._clientSessions

按会话键分组的客户会话(e.g. SenderCompId.).

_incomingMessages
protected readonly Channel<Message> _incomingMessages
value = baseProtocolServer._incomingMessages

来电消息频道.

_outgoingMessages
protected readonly Channel<ValueTuple<IMessageListenerSession, Message>> _outgoingMessages
value = baseProtocolServer._outgoingMessages

正在发送消息通道(会话+消息对).

_subscriptions
protected readonly SubscriptionHolder<TSubscription, TClientSession> _subscriptions
value = baseProtocolServer._subscriptions

订阅机持有者.